package ejb.casacentral.service.controller;

import java.util.List;
import java.util.Set;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;

import ejb.casacentral.log.CasaLogger;
import ejb.casacentral.persistence.entity.OficinaVenta;
import ejb.casacentral.persistence.entity.Proveedor;

@SuppressWarnings("unchecked")
@Stateless
public class OficinaVentaControllerBean implements OficinaVentaController {
	
	@PersistenceContext(unitName="casacentral")
	private EntityManager em;
	
	
	@Override
	public List<OficinaVenta> obtenerOficinasDeVentas() {
		CasaLogger.log(" obteniendo entidad .... "); 
		return em.createNamedQuery("OficinaVenta.todas").getResultList();
	}

	@Override
	public List<OficinaVenta> obtenerOficinaPorCodigos(
			Set<String> codigosSolicitudes) {
		CasaLogger.log(" obteniendo entidad .... ");
		return   em.createNamedQuery("OficinaVenta.porCodigos").setParameter("codigos", codigosSolicitudes).getResultList();
		
	}
	
	@Override
	public OficinaVenta obtenerOficinaPorCodigo( String codigo) {
		OficinaVenta oficina = null;
        try{
		CasaLogger.log(" obteniendo entidad .... ");
		oficina=  (OficinaVenta)  em.createNamedQuery("OficinaVenta.porCodigo").setParameter("codigo", codigo).getSingleResult();
        }catch (NoResultException e) {
            CasaLogger.log("no se encontro el oficina.... ");
        }
		return oficina;
	}
	
    @Override
    public OficinaVenta nuevoOficina(String sucursal) {
        
    	OficinaVenta oficina = new OficinaVenta();
        oficina.setSucursal(sucursal);
        CasaLogger.log(" persistiendo entidad .... "); em.merge(oficina);
        em.flush();
        return oficina;
    }
	
	

}
